<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>04JS运算符</title>
</head>
<body>
<script>
    /*运算符
        1.算术运算符（+ - * / %）
        2.关系运算符（> < >= <= ==（松散比较） ===（严格比较，先比较类型，在比较值） != ！==）
        3.逻辑运算符（&&（并且） ||（或者） !（取反））
        4.赋值运算符（= += -= *= /= %=）
        5.三目运算符（condition ? true : false）
     */
    console.log(6/3);//2
    console.log(3/2);//1.5 浮点数
    //如果比较运算符左右两边有数字，会转化数字在进行比较
    console.log(3>10);
    console.log(3>'10');
    //如果比较运算符左右两边都是字符串，会比较他们的编码值
    console.log('超'>'人');
    console.log('超'.charCodeAt());
    console.log('人'.charCodeAt());
    console.log('3'>'10');
    console.log('3'.charCodeAt());
    console.log('10'.charCodeAt());

    //松散比较运算符，值比较，Number（true）=1
    //严格比较运算符，先比较类型，类型相同再比较值
    console.log(3==true);//true Number(true)=1
    console.log(3===true);//false 类型不同
    //三目运算符
    console.log(3>10?'YES':'NO');//NO
    console.log(3===true?'YES':'NO');//NO
    let d=0;
    console.log(d==0?'YES':'NO');//NO
    console.log(d===0?'YES':'NO');//YES
    console.log(d=0?'YES':'NO');//NO 先赋值d=0 再比较d  d=0 false 所以是NO
    //0、null、undefined、""、NaN、空字符串、''这些值在布尔判断时会被视为false，
</script>
</body>
</html>